package logicaModular;

import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;

import logicaBBDD.ConectorBBDD;
import logicaBBDD.SqlFarmacos;
import logicaBeans.FarmacosBeans;

public class PksFarmacos extends JDialog implements KeyListener {
//public class PksFarmacos extends JFrame implements KeyListener {


	
	private JTable tabla;
	private DefaultTableModel dtm;
	

	private JPanel contentPane;

	private JTextField textId;
	private JTextField textDescripcionFarmaco;
	private JTextField textpesoMolecular;
	private JTextField textunidadConcentracionFarmaco;
	private JTextField textminimumTrough;
	private JTextField textMaximunTrough;
	private JTextField textMaximoDosisDiarias;
	private JTextField textTiempoMaximoMuestreo;
	private JComboBox textMostrarIntervalosConfianza;
	private JTextField textuUnidadesDosisDiarias;
	private JTextField textmaximunPeak;
	private JTextField textminimunPeak;
	private JTextField textMaxConcentracionFarmaco;
	private JTextField textModeloPorDefecto;
	private JTextField textFactorDeTejido;
	private JTextField textFormulaLiquidacionDe;
	private JTextField textDescripcionPoblacion;
	private Connection xconnection;
	


	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		try {
			PksFarmacos dialogx = new PksFarmacos();
			dialogx.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
			dialogx.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialogx.setVisible(true);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the frame.
	 */
	/**
	 * 
	 */
	public PksFarmacos() {
		ConectorBBDD conexion = new ConectorBBDD();
		try {
			this.xconnection = conexion.GetConnection();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		setIconImage(Toolkit.getDefaultToolkit().getImage(
				PksFarmacos.class.getResource("/imagenes/medicamento.jpg")));
		// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 720, 488);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		// DefaultTableModel modelo;
		

		textId = new JTextField();
		textId.setBounds(103, 11, 53, 20);
		contentPane.add(textId);
		textId.setColumns(10);

		textDescripcionFarmaco = new JTextField();
		textDescripcionFarmaco.setBounds(272, 11, 364, 20);
		contentPane.add(textDescripcionFarmaco);
		textDescripcionFarmaco.setColumns(10);

		textpesoMolecular = new JTextField();
		textpesoMolecular.setBounds(144, 60, 86, 20);
		contentPane.add(textpesoMolecular);
		textpesoMolecular.setColumns(10);

		textunidadConcentracionFarmaco = new JTextField();
		textunidadConcentracionFarmaco.setColumns(10);
		textunidadConcentracionFarmaco.setBounds(442, 60, 103, 20);
		contentPane.add(textunidadConcentracionFarmaco);

		textminimumTrough = new JTextField();
		textminimumTrough.setColumns(10);
		textminimumTrough.setBounds(169, 91, 61, 20);
		contentPane.add(textminimumTrough);

		textMaximunTrough = new JTextField();
		textMaximunTrough.setColumns(10);
		textMaximunTrough.setBounds(169, 116, 61, 20);
		contentPane.add(textMaximunTrough);

		textMaximoDosisDiarias = new JTextField();
		textMaximoDosisDiarias.setColumns(10);
		textMaximoDosisDiarias.setBounds(169, 228, 86, 20);
		contentPane.add(textMaximoDosisDiarias);

		textTiempoMaximoMuestreo = new JTextField();
		textTiempoMaximoMuestreo.setColumns(10);
		textTiempoMaximoMuestreo.setBounds(453, 91, 86, 20);
		contentPane.add(textTiempoMaximoMuestreo);

		textMostrarIntervalosConfianza = new JComboBox();
		textMostrarIntervalosConfianza.setModel(new DefaultComboBoxModel(
				new String[] { " ", "S\u00ED", "No" }));
		textMostrarIntervalosConfianza.setBounds(453, 116, 86, 20);
		contentPane.add(textMostrarIntervalosConfianza);

		textuUnidadesDosisDiarias = new JTextField();
		textuUnidadesDosisDiarias.setColumns(10);
		textuUnidadesDosisDiarias.setBounds(169, 197, 86, 20);
		contentPane.add(textuUnidadesDosisDiarias);

		textmaximunPeak = new JTextField();
		textmaximunPeak.setColumns(10);
		textmaximunPeak.setBounds(169, 166, 61, 20);
		contentPane.add(textmaximunPeak);

		textminimunPeak = new JTextField();
		textminimunPeak.setColumns(10);
		textminimunPeak.setBounds(169, 141, 61, 20);
		contentPane.add(textminimunPeak);

		JLabel lblId = new JLabel("Id");
		lblId.setBounds(67, 14, 46, 14);
		contentPane.add(lblId);

		JLabel lblDescripcionFarmaco = new JLabel("Descrip.Farmaco:");
		lblDescripcionFarmaco.setBounds(176, 14, 103, 14);
		contentPane.add(lblDescripcionFarmaco);

		JLabel lblpesoMolecular = new JLabel("Peso Molecular");
		lblpesoMolecular.setBounds(67, 63, 106, 14);
		contentPane.add(lblpesoMolecular);

		JLabel lblUnidadConcentracionFarmaco = new JLabel(
				"Unidad Concent.Farmaco");
		lblUnidadConcentracionFarmaco.setBounds(258, 63, 132, 14);
		contentPane.add(lblUnidadConcentracionFarmaco);

		JLabel lblminimunTrough = new JLabel("Minimum Trough");
		lblminimunTrough.setBounds(27, 94, 106, 14);
		contentPane.add(lblminimunTrough);

		JLabel lblMaximunTrough = new JLabel("Maximun Trough");
		lblMaximunTrough.setBounds(27, 119, 106, 14);
		contentPane.add(lblMaximunTrough);

		JLabel lblminimunPeak = new JLabel("Minimun Peak");
		lblminimunPeak.setBounds(27, 144, 101, 14);
		contentPane.add(lblminimunPeak);

		JLabel lblmaximunPeak = new JLabel("Maximun Peak");
		lblmaximunPeak.setBounds(27, 169, 101, 14);
		contentPane.add(lblmaximunPeak);

		JLabel lblunidadesDosisDiarias = new JLabel("Uds.Dosis Diarias");
		lblunidadesDosisDiarias.setBounds(27, 200, 101, 14);
		contentPane.add(lblunidadesDosisDiarias);

		JLabel lblMaximoDosisDiarias = new JLabel("Maximo Dosis Diarias");
		lblMaximoDosisDiarias.setBounds(27, 231, 101, 14);
		contentPane.add(lblMaximoDosisDiarias);

		JLabel lblTiempoMaximoMuestreo = new JLabel("Tiempo Maximo Muestreo");
		lblTiempoMaximoMuestreo.setBounds(272, 97, 132, 14);
		contentPane.add(lblTiempoMaximoMuestreo);

		JLabel lblMostrarIntervalosConfianza = new JLabel(
				"Mostrar Intervalos Confianza");
		lblMostrarIntervalosConfianza.setBounds(272, 119, 151, 14);
		contentPane.add(lblMostrarIntervalosConfianza);

		JLabel lblMaxConcentracionFarmaco = new JLabel(
				"Max. Concentra. F\u00E1rmaco. Grafic.");
		lblMaxConcentracionFarmaco.setBounds(272, 144, 171, 14);
		contentPane.add(lblMaxConcentracionFarmaco);

		textMaxConcentracionFarmaco = new JTextField();
		textMaxConcentracionFarmaco.setColumns(10);
		textMaxConcentracionFarmaco.setBounds(453, 141, 86, 20);
		contentPane.add(textMaxConcentracionFarmaco);

		JLabel lblModeloPorDefecto = new JLabel("Modelo por defecto");
		lblModeloPorDefecto.setBounds(272, 200, 151, 14);
		contentPane.add(lblModeloPorDefecto);

		textModeloPorDefecto = new JTextField();
		textModeloPorDefecto.setColumns(10);
		textModeloPorDefecto.setBounds(453, 197, 86, 20);
		contentPane.add(textModeloPorDefecto);

		JLabel lblFactorDeTejido = new JLabel("Factor de tejido adiposo");
		lblFactorDeTejido.setBounds(272, 225, 151, 14);
		contentPane.add(lblFactorDeTejido);

		textFactorDeTejido = new JTextField();
		textFactorDeTejido.setColumns(10);
		textFactorDeTejido.setBounds(453, 222, 86, 20);
		contentPane.add(textFactorDeTejido);

		JLabel lblFormulaLiquidacionDe = new JLabel(
				"formula liquidacion de la creatinina");
		lblFormulaLiquidacionDe.setBounds(272, 247, 151, 14);
		contentPane.add(lblFormulaLiquidacionDe);

		textFormulaLiquidacionDe = new JTextField();
		textFormulaLiquidacionDe.setColumns(10);
		textFormulaLiquidacionDe.setBounds(453, 244, 86, 20);
		contentPane.add(textFormulaLiquidacionDe);

		JButton btnConsultar = new JButton("Consultar");
		btnConsultar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			}
		});
		btnConsultar.setBounds(44, 390, 89, 23);
		contentPane.add(btnConsultar);

		JButton btnAnadir = new JButton("A\u00F1adir");
		btnAnadir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String id = textId.getText();
				String farmaco = textDescripcionFarmaco.getText();
				String poblacion = textDescripcionPoblacion.getText();
				Object datos[] = { id, farmaco, poblacion };
				dtm.addRow(datos);
				

			}
		});
		btnAnadir.setBounds(144, 390, 89, 23);
		contentPane.add(btnAnadir);

		JButton btnModificar = new JButton("Modificar");
		btnModificar.setBounds(243, 390, 89, 23);
		contentPane.add(btnModificar);

		JButton btnBorrar = new JButton("Borrar");
		btnBorrar.setBounds(342, 390, 89, 23);
		contentPane.add(btnBorrar);

		JLabel lblDescrippoblacion = new JLabel("Descrip.Poblacion");
		lblDescrippoblacion.setBounds(176, 35, 103, 14);
		contentPane.add(lblDescrippoblacion);

		textDescripcionPoblacion = new JTextField();
		textDescripcionPoblacion.setColumns(10);
		textDescripcionPoblacion.setBounds(272, 32, 364, 20);
		contentPane.add(textDescripcionPoblacion);
		String cabecera[] = { "Id", "Farmaco", "Descrip.Pobla" };
		String datos[][] = {};
		 dtm= new DefaultTableModel(datos,cabecera){
			 //Para que la tabla no sea editable.
				 public boolean isCellEditable(int row, int column) {
				 return false;
				 }
		 };
		 
		 
		tabla = new JTable(dtm);

		//tabla.setBounds(20, 300, 600, 48);
		JScrollPane scroll = new JScrollPane();
		scroll.setBounds(10, 270, 600, 110);
		scroll.setViewportView(tabla);
		//contentPane.add(tabla);
		contentPane.add(scroll);
		//tabla.setVisible(true);
		SqlFarmacos sqlFarmacos=new SqlFarmacos();
		try {
			ArrayList<FarmacosBeans> lista=sqlFarmacos.arrFarmacos(xconnection);
		    for (FarmacosBeans farmacosBean :lista )
		    {
		    	String id = farmacosBean.getIdFarmaco()+"";
				String farmaco = farmacosBean.getDescripcionFarmaco();
				String poblacion = farmacosBean.getDescripcionPoblacion();
				Object xdatos[] = { id, farmaco, poblacion };
				dtm.addRow(xdatos);
		    	 
		    }
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

	
	}

	@Override
	public void keyPressed(KeyEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void keyReleased(KeyEvent arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void keyTyped(KeyEvent arg0) {
		// TODO Auto-generated method stub

	}
}
